home *** CD-ROM | disk | FTP | other *** search
- * ------------------------------------------------------------------------- *
-
- INCLUDE "ram:Support.s"
-
- * ------------------------------------------------------------------------- *
-
- * Disect V1.6 Disassembly:
- * ------------------------
-
-
-
- * ------------------------------------------------------------------------- *
-
- ; Disassembly of 'KeepASL' - DMA 1.10.94
-
- main move.l (EXEC_BASE).w,sys_base
-
- bsr.w start_up ; WB/CLI start up
-
- lea.l int_name(pc),a1 ; open intuition
- moveq.l #$0,d0
- movea.l sys_base(pc),a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,int_base
- beq.w exit
-
- lea.l asl_name(pc),a1 ; open ASL
- moveq.l #$0,d0
- movea.l sys_base(pc),a6
- jsr _LVOOpenLibrary(a6)
- move.l d0,asl_base
- beq.b exit
-
- lea.l clip_name(pc),a0 ; open clipboard
- lea.l clip_iorq(pc),a1
- moveq.l #$0,d0
- moveq.l #$0,d1
- movea.l sys_base(pc),a6
- jsr _LVOOpenDevice(a6)
- tst.l d0
- bne.b exit
- st.b clip_flag
-
- lea.l newwind0(pc),a0 ; open window
- movea.l int_base(pc),a6
- jsr _LVOOpenWindow(a6)
- move.l d0,window_p
- beq.b exit
-
- movea.l window_p(pc),a0 ; wait for window
- movea.l wd_UserPort(a0),a2 ; close message
-
- .wait_loop movea.l a2,a0
- movea.l sys_base(pc),a6
- jsr _LVOWaitPort(a6)
-
- movea.l a2,a0
- movea.l sys_base(pc),a6
- jsr _LVOGetMsg(a6)
- tst.l d0
- beq.b .wait_loop
-
- movea.l d0,a1
- movea.l sys_base(pc),a6
- jsr _LVOReplyMsg(a6)
-
- exit move.l window_p(pc),d0 ; close window
- beq.b .no_window
- movea.l d0,a0
- movea.l int_base(pc),a6
- jsr _LVOCloseWindow(a6)
-
- .no_window tst.b clip_flag ; close clipboard
- beq.b .no_clip
- clr.b clip_flag
- lea.l clip_iorq(pc),a1
- movea.l sys_base(pc),a6
- jsr _LVOCloseDevice(a6)
-
- .no_clip move.l asl_base(pc),d0 ; close ASL
- beq.w .no_asl
- movea.l d0,a1
- movea.l sys_base(pc),a6
- jsr _LVOCloseLibrary(a6)
- .no_asl clr.l asl_base
-
- move.l int_base(pc),d0 ; close intuition
- beq.w .no_int
- movea.l d0,a1
- movea.l sys_base(pc),a6
- jsr _LVOCloseLibrary(a6)
- .no_int clr.l int_base
-
- bsr.w close_down
-
- moveq.l #$0,d0
-
- rts
-
- * ------------------------------------------------------------------------- *
-
- start_up movem.l d0/a0,-(a7)
-
- suba.l a1,a1
- move.l a1,wb_msg_p
- movea.l sys_base(pc),a6
- jsr _LVOFindTask(a6)
- movea.l d0,a4
- move.l d0,task_p
-
- tst.l pr_CLI(a4)
- bne.b .exit
-
- lea.l pr_MsgPort(a4),a0
- movea.l sys_base(pc),a6
- jsr _LVOWaitPort(a6)
-
- lea.l pr_MsgPort(a4),a0
- movea.l sys_base(pc),a6
- jsr _LVOGetMsg(a6)
- move.l d0,wb_msg_p
-
- .exit movem.l (a7)+,d0/a0
-
- rts
-
- * ------------------------------------------------------------------------- *
-
- close_down tst.l wb_msg_p
- beq.b .exit
-
- movea.l sys_base(pc),a6
- jsr _LVOForbid(a6)
-
- movea.l wb_msg_p(pc),a1
- movea.l sys_base(pc),a6
- jsr _LVOReplyMsg(a6)
-
- .exit rts
-
- * ------------------------------------------------------------------------- *
-
- sys_base DC.L 0
- int_base DC.L 0
- asl_base DC.L 0,0
- wb_msg_p DC.L 0
- task_p DC.L 0
- window_p DC.L 0
-
- clip_flag DC.B 0,0
-
- ; IOClipReq structure
-
- clip_iorq DCB.W 25
- DC.W 0
-
- newwind0 NEWWINDOW $a8,$0,$130,$b,$3,$0,IDCMP_CLOSEWINDOW,
- & WFLG_ACTIVATE+WFLG_DRAGBAR+WFLG_DEPTHGADGET+WFLG_CLOSEGADGET+WFLG_RMBTRAP,
- & $0,$0,ascii0,$0,$0,$0,$0,$0,$0,WBENCHSCREEN
-
- ascii0 DC.B "Keep ASL(CD) - Dave 'A' 93(94)",$0,0
-
- int_name DC.B "intuition.library",$0
- asl_name DC.B "asl.library",$0
- clip_name DC.B "clipboard.device",$0,$0
- DC.W 0
-
- * ------------------------------------------------------------------------- *